extract和compact基本上是兩個互為相反的函式;一個是把一包資料拆開,另一個是把多個資料打包再一起,我的理解。
// 假設有一組資料如下
$data = [
'name'=>'Joe',
'age'=>20,
'height'=>175
];
//根據$data的key和value宣告數個變數
extract($data);
//試著把$name、$age、$height三個變數印出來
echo 'name:'.$name;
echo '<br>';
echo 'age:'.$age;
echo '<br>';
echo 'height:'.$height.' cm';
在瀏覽器印出來長這樣~
// 以下有三個變數
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
// 放入想打包的對象
$result = compact("event", "state");
// 印出結果
var_dump($result);
也可以輸入一個陣列(array)。
// 把city和state組成一個陣列
$location_vars = array("city", "state");
// compact
$result = compact($location_vars);
也可以複合使用,輸入變數名稱,又輸入變數名稱陣列。
// 把city和state組成一個陣列
$location_vars = array("city", "state");
// 同時輸入個變數名字(string)和陣列(array)
$result = compact('event', $location_vars);
結果的順序會依照compact讀入的順序,上面我們把'event'
放最前面,所以結果也是在result[0]
,也就是第一筆資料!